// 导入 http 模块
import http from 'wechat-http'
// 接口基础路径
http.baseURL = 'https://live-api.itheima.net'
//请求拦截器
http.intercept.request = function (options) {
  //拓展信息头
  const defaultHeader = {}
  //添加
  defaultHeader.Authorization = 'Bearer ' + getApp().token
  //合并
  options.header = Object.assign({}, defaultHeader, options.header)
  // 一定要return，否则请求出不去
  return options
}
// 响应拦截器
http.intercept.response = async function (result) {
  console.log(result);
  const { code, message, data } = result.data
  // 10000 业务正确
  if (code === 10000) {
    return data
  } else {//业务错误或者请求错误
    if (code === 401) {
      // 验证token过期
      const app = getApp()
      wx.request({
        url:http.baseURL +  '/refreshToken',
        method: 'post',
        header: { Authorization: `Bearer ` + app.refreshToken },
        success: res =>{
          if(res.data.code === 401){
            // 刷新token也过期了重新登录
            // 清除app里面的token
            app.setToken('token','')
            app.setToken('refreshToken','')
            const curPages= getCurrentPages()
            const page=  curPages.pop()
            return wx.redirectTo({
              url: 'pages/login/index?redirecturl='+page.route
            })
          }
          if(res.data.code === 10000){
            // 更换token 
            app.setToken('token', res.token)
            app.setToken('refreshToken', res.data.data.refreshToken)
            const config = Object.assign(result.config, {
              header: { Authorization: `Bearer ` + res.data.data.token }
            })
            return http(config)
          }
        },
        fail: err=>{
          console.log(err);
        
        }
      })
   

    }
    wx.utils.toast(message || '业务错误')
    return Promise.reject(message || '业务错误')
  }

}

// 挂载到全局对象
wx.http = http
// 普通的模块导出
export default http